﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace DoctorReg
{
    public partial class FormMedicos2 : Form
    {
        int contribuinteAnterior;
        string nomeAnterior, distritoAnterior;

        public void Alterar(int contribuinte, string nome, string distrito)
        {
            buttonAdicionar.Enabled = false;
            buttonAlterar.Enabled = true;
            LimparCampos();
            ColocarDados();
            contribuinteMaskedTextBox.Text = contribuinte.ToString();
            nomeTextBox.Text = nome;
            distritoComboBox.Text = distrito;
            contribuinteAnterior = contribuinte;
            nomeAnterior = nome;
            distritoAnterior = distrito;
        }


        public FormMedicos2()
        {
            InitializeComponent();
        }

        private void médicosBindingNavigatorSaveItem_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.médicosBindingSource.EndEdit();
            this.tableAdapterManager.UpdateAll(this.consultasDataSet);

        }

        private void FormMedicos2_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'consultasDataSet.Médicos' table. You can move, or remove it, as needed.
            this.médicosTableAdapter.Fill(this.consultasDataSet.Médicos);

        }

        public void Adicionar()
        {
            buttonAdicionar.Enabled = true;
            buttonAlterar.Enabled = false;
            LimparCampos();
            ColocarDados();
        }

        public void LimparCampos()
        {
            contribuinteMaskedTextBox.DataBindings.Clear();
            nomeTextBox.DataBindings.Clear();
            distritoComboBox.DataBindings.Clear();
            contribuinteMaskedTextBox.Text = null;
            nomeTextBox.Text = null;
            distritoComboBox.Text = null;
            contribuinteMaskedTextBox.Focus();
        }

        public void ColocarDados()
        {
            distritoComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
            nomeTextBox.MaxLength = 50;
            contribuinteMaskedTextBox.Mask = "000000000";
            ConsultasDataSetTableAdapters.DistritosTableAdapter adapterDistritos = new ConsultasDataSetTableAdapters.DistritosTableAdapter();
            ConsultasDataSet.DistritosDataTable tabDistritos = new ConsultasDataSet.DistritosDataTable();
            adapterDistritos.Fill(tabDistritos);
            foreach (DataRow registo in tabDistritos.Rows)
            {
                distritoComboBox.Items.Add(registo[0]);
            }
        }

        public bool ValidarDados()
        {
            if (contribuinteMaskedTextBox.MaskFull == false)
            {
                MessageBox.Show("Erro no número de contribuinte!",
                this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            else if (nomeTextBox.Text.Length < 5)
            {
                MessageBox.Show("Erro no nome!",
           this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            else if (distritoComboBox.Text == "")
            {
                MessageBox.Show("Erro no distrito!",
           this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return false;
            }
            else
            {
                return true;
            }
        }

        private void buttonAdicionar_Click(object sender, EventArgs e)
        {
            if (ValidarDados())
            {
                ConsultasDataSetTableAdapters.MédicosTableAdapter
                adapterMedicos = new
                ConsultasDataSetTableAdapters.MédicosTableAdapter();
                try
                {
                    adapterMedicos.Insert(int.Parse(contribuinteMaskedTextBox.Text),
                    nomeTextBox.Text, distritoComboBox.Text);
                    MessageBox.Show("Registo adicionado com sucesso!",
                    this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message,
                    this.Text, MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    contribuinteMaskedTextBox.SelectAll();
                    contribuinteMaskedTextBox.Focus();
                }
            }

        }

        private void buttonAlterar_Click(object sender, EventArgs e)
        {
            if (ValidarDados())
            {
                ConsultasDataSetTableAdapters.MédicosTableAdapter
                adapterMedicos = new
                ConsultasDataSetTableAdapters.MédicosTableAdapter();
                try
                {
                    adapterMedicos.Update(int.Parse(contribuinteMaskedTextBox.Text),
                    nomeTextBox.Text, distritoComboBox.Text, contribuinteAnterior,
                    nomeAnterior, distritoAnterior);
                    MessageBox.Show("Registo alterado com sucesso!",
                    this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK,
                    MessageBoxIcon.Exclamation);
                    contribuinteMaskedTextBox.SelectAll();
                    contribuinteMaskedTextBox.Focus();
                }
            }

        }



    }
}
